/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package game;

import framework.Screen;
import framework.Util;

/**
 * Configurações globais do jogo.
 * @author marcos
 */
public class Global {

    // <<IMPORTANTE>>
    // Quando houver alteração nesta classe, utilize a opção
    // "limpar e construir" do NetBeans para forçar a recompilação desta
    // classe.
    // CONFIGURAÇÕES DO JOGO ///////////////////////////////////////////////////
    public static final int SCREEN_WIDTH = 800;
    public static final int SCREEN_HEIGHT = 600;
    public static final boolean FULL_SCREEN = false;
    // RECURSOS DO JOGO ////////////////////////////////////////////////////////
    private static final String FOLDER = "images/";
    // objetos
    public static final String IMG_BALL = FOLDER + "ball.png";
    public static final String IMG_PADDLE = FOLDER + "paddle.png";
    public static final String IMG_BLOCK = FOLDER + "block.png";
    public static final String IMG_TIROS = FOLDER + "explosaoTiros.png";
    public static final String IMG_ITENS = FOLDER + "itens.png";
    public static final String IMG_TIRO_1 = FOLDER + "tiros1.png";
    public static final String IMG_TIRO_2 = FOLDER + "tiros2.png";
    public static final String IMG_TIRO_3 = FOLDER + "tiros3.png";
    public static final String IMG_TIRO_4 = FOLDER + "tiros4.png";
    public static final String IMG_TIRO_5 = FOLDER + "tiros5.png";
    public static final String IMG_TIRO_6 = FOLDER + "tiros6.png";
    public static final String IMG_BOMBA = FOLDER + "tiroBombaS.png";
    public static final String IMG_NAVE1 = FOLDER + "NaveExplosao.png";
    public static final String IMG_NAVE2 = FOLDER + "nave2.png";
    public static final String IMG_INIMIGOS = FOLDER + "explosaoInimigo.png";
    public static final String IMG_INIMIGO_1 = FOLDER + "inimigo1.png";
    public static final String IMG_INIMIGO_2 = FOLDER + "inimigo2.png";
    public static final String IMG_INIMIGO_3 = FOLDER + "inimigo3.png";
    // fundos e telas
    public static final String IMG_TITLE_BACK = FOLDER + "Abertura.png";
    public static final String IMG_TITLE = FOLDER + "fundo2.png";
    public static final String IMG_GAME_BACK = FOLDER + "back6.jpg";
    public static final String IMG_GAME_BACK2 = FOLDER + "space_267.jpg";
    public static final String IMG_LEVEL_CLEAR = FOLDER + "screen_gamewin.png";
    public static final String IMG_GAME_OVER = FOLDER + "screen_gameover.png";
    //niveis
    public static final String IMG_GAME_LEVEL1 = FOLDER + "level1.jpg";
    public static final String IMG_GAME_LEVEL2 = FOLDER + "level2.jpg";
    public static final String IMG_GAME_LEVEL3 = FOLDER + "level3.jpg";
    public static final String IMG_GAME_LEVEL4 = FOLDER + "level4.jpg";
    public static final String IMG_GAME_LEVEL5 = FOLDER + "level5.jpg";
    public static final String IMG_GAME_LEVEL6 = FOLDER + "level6.jpg";
    public static final String IMG_GAME_LEVEL7 = FOLDER + "level7.jpg";
    public static final String IMG_GAME_LEVEL8 = FOLDER + "level8.jpg";
    public static final String IMG_GAME_LEVEL9 = FOLDER + "level9.jpg";
    public static final String IMG_GAME_LEVEL10 = FOLDER + "level10.jpg";
    public static final String IMG_GAME_LEVELRE = FOLDER + "levelRE.jpg";
    public static final String IMG_GAME_WIN = FOLDER + "WinGame.jpg";
    //Introducao
    public static final String IMG_GAME_INTRO1 = FOLDER + "apre01.png";
    public static final String IMG_GAME_INTRO2 = FOLDER + "apre02.png";
    public static final String IMG_GAME_INTRO3 = FOLDER + "apre03.png";
    public static final String IMG_GAME_INTRO4 = FOLDER + "apre04.png";
    public static final String IMG_GAME_INTRO5 = FOLDER + "apre05.png";
    public static final String IMG_GAME_INTRO6 = FOLDER + "apre06.png";
    public static final String IMG_GAME_HELP = FOLDER + "help.png";
    public static final String IMG_GAME_CREDITOS = FOLDER + "creditos.png";
    public static Nave naveAtiva = new Nave();
    public static int level = 0;
    public static int numeroLegioes = 6;
    public static int lifes = 2;
    public static int pontuacao = 0;

    public static void zerar() {
        level = 0;
        lifes = 3;
        pontuacao = 0;
        naveAtiva = new Nave();

    }

    public static void updateLevel() {
        level++;
//        Global.navesPorLegiao += 2;
//        Global.indiceBombas = (int) (Global.indiceBombas * 0.70);
//        Global.numeroLegioes += 2;
    }

    public static Legiao getFase() {
        switch (level) {
            case 1:
                return fase1();
            case 2:
                return fase2();
            case 3:
                return fase3();
            case 4:
                return fase4();
            case 5:
                return fase5();
            case 6:
                return fase6();
            case 7:
                return fase7();
            case 8:
                return fase8();
            case 9:
                return fase9();
            case 10:
                return fase10();
            default:
                return fase1();
        }

    }

    public static Legiao fase1() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(10);
        legiao.setNumeroLegioes(5);
        legiao.setIndiceBombas(1000);
        legiao.setDistanciaEntreLegioes(2000);
        legiao.addType(Inimigo.TIPO1);
        return legiao;
    }

    public static Legiao fase2() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(3);
        legiao.setNumeroLegioes(50);
        legiao.setIndiceBombas(900);
        legiao.addType(Inimigo.TIPO2);
        return legiao;
    }

    public static Legiao fase3() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(20);
        legiao.setNumeroLegioes(10);
        legiao.setIndiceBombas(1500);
        legiao.addType(Inimigo.TIPO3);
        return legiao;
    }

    public static Legiao fase4() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(3);
        legiao.setNumeroLegioes(100);
        legiao.setIndiceBombas(600);
        legiao.addType(Inimigo.TIPO1);
        legiao.addType(Inimigo.TIPO2);
        return legiao;
    }

    public static Legiao fase5() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(3);
        legiao.setNumeroLegioes(100);
        legiao.setIndiceBombas(600);
        legiao.addType(Inimigo.TIPO1);
        legiao.addType(Inimigo.TIPO3);
        legiao.setDistanciaEntreLegioes(200);
        return legiao;
    }

    public static Legiao fase6() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(3);
        legiao.setNumeroLegioes(150);
        legiao.setIndiceBombas(400);
        legiao.addType(Inimigo.TIPO2);
        legiao.addType(Inimigo.TIPO3);
        legiao.setDistanciaEntreLegioes(100);
        return legiao;
    }

    public static Legiao fase7() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(100);
        legiao.setNumeroLegioes(4);
        legiao.setIndiceBombas(200);
        legiao.addType(Inimigo.TIPO3);
        legiao.setDistanciaEntreLegioes(1500);
        return legiao;
    }

    public static Legiao fase8() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(50);
        legiao.setNumeroLegioes(10);
        legiao.setIndiceBombas(300);
        legiao.addType(Inimigo.TIPO1);
        legiao.addType(Inimigo.TIPO2);
        legiao.setDistanciaEntreLegioes(100);
        return legiao;
    }

    public static Legiao fase9() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(5);
        legiao.setNumeroLegioes(100);
        legiao.setIndiceBombas(200);
        legiao.setDistanciaEntreLegioes(50);
        legiao.addType(Inimigo.TIPO1);
        legiao.addType(Inimigo.TIPO2);
        legiao.addType(Inimigo.TIPO3);

        return legiao;
    }

    public static Legiao fase10() {
        Legiao legiao = new Legiao();
        legiao.setNavesPorLegiao(5);
        legiao.setNumeroLegioes(200);
        legiao.setIndiceBombas(100);
        legiao.setDistanciaEntreLegioes(10);
        legiao.addType(Inimigo.TIPO1);
        legiao.addType(Inimigo.TIPO1);
        legiao.addType(Inimigo.TIPO2);
        legiao.addType(Inimigo.TIPO2);
        legiao.addType(Inimigo.TIPO3);
        legiao.addType(Inimigo.TIPO3);
        return legiao;
    }
}
